package com.ruoyi.system.service.impl.task;

import java.util.List;

import com.ruoyi.common.core.domain.model.VsUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.task.VsDramsTaskLog;
import com.ruoyi.system.mapper.task.VsDramsTaskLogMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.task.VsDramasTaskMapper;
import com.ruoyi.system.domain.task.VsDramasTask;
import com.ruoyi.system.service.task.IVsDramasTaskService;

/**
 * 任务Service业务层处理
 * 
 * @author zzx
 * @date 2024-04-27
 */
@Service
public class VsDramasTaskServiceImpl implements IVsDramasTaskService 
{
    @Autowired
    private VsDramasTaskMapper vsDramasTaskMapper;

    @Autowired
    private VsDramsTaskLogMapper vsDramsTaskLogMapper;

    /**
     * 查询任务
     * 
     * @param id 任务主键
     * @return 任务
     */
    @Override
    public VsDramasTask selectVsDramasTaskById(Integer id)
    {
        return vsDramasTaskMapper.selectVsDramasTaskById(id);
    }

    /**
     * 查询任务列表
     * 
     * @param vsDramasTask 任务
     * @return 任务
     */
    @Override
    public List<VsDramasTask> selectVsDramasTaskList(VsDramasTask vsDramasTask)
    {
        List<VsDramasTask> list = vsDramasTaskMapper.selectVsDramasTaskList(vsDramasTask);
        VsUser user = SecurityUtils.getLoginUser().getVsUser();
        VsDramsTaskLog log = new VsDramsTaskLog();
        // 首先获取当前用户信息 没有直接返回0条记录 有就去查询有没有任务记录
        for (VsDramasTask v : list) {
            if (user == null) {
                v.setCountTask(0);
            } else {
                log.setTaskId(Long.valueOf(v.getId()));
                log.setUserId(user.getId());
                List<VsDramsTaskLog> logs = vsDramsTaskLogMapper.selectVsDramsTaskLogList(log);
                if (StringUtils.isEmpty(logs)) {
                    v.setCountTask(0);
                } else {
                    v.setCountTask(logs.size());
                }
            }
        }
        return list;
    }

    /**
     * 新增任务
     * 
     * @param vsDramasTask 任务
     * @return 结果
     */
    @Override
    public int insertVsDramasTask(VsDramasTask vsDramasTask)
    {
        vsDramasTask.setCreatetime(System.currentTimeMillis());
        vsDramasTask.setUpdatetime(System.currentTimeMillis());
        return vsDramasTaskMapper.insertVsDramasTask(vsDramasTask);
    }

    /**
     * 修改任务
     * 
     * @param vsDramasTask 任务
     * @return 结果
     */
    @Override
    public int updateVsDramasTask(VsDramasTask vsDramasTask)
    {
        vsDramasTask.setUpdatetime(System.currentTimeMillis());
        return vsDramasTaskMapper.updateVsDramasTask(vsDramasTask);
    }

    /**
     * 批量删除任务
     * 
     * @param ids 需要删除的任务主键
     * @return 结果
     */
    @Override
    public int deleteVsDramasTaskByIds(Integer[] ids)
    {
        return vsDramasTaskMapper.deleteVsDramasTaskByIds(ids);
    }

    /**
     * 删除任务信息
     * 
     * @param id 任务主键
     * @return 结果
     */
    @Override
    public int deleteVsDramasTaskById(Integer id)
    {
        return vsDramasTaskMapper.deleteVsDramasTaskById(id);
    }
}
